home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t8.d64 / diskette mod.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  3KB  |  90 lines

  1. 100 PRINT"[147]DISKETTE VIEWER/CHANGER**JIM BUTTERFIELD"
  2. 110 PRINT"   CAUTION - USE CARE - THIS PROGRAM"
  3. 115 PRINT "ADAPTED BY BRIAN SCHOTT TO FIX DISKETTE SECTORS"
  4. 118 REM 1041 NORTH HILLS DRIVE, DECATUR, GEORGIA, 30033
  5. 119 REM MAY 1983, FOR C64
  6. 120 PRINT"       CAN WRECK YOUR DISKETTE IF USED"
  7. 130 PRINT"      WITHOUT CARE & UNDERSTANDING!"
  8. 135 PRINT"DO YOU WANT INSTRUCTIONS"
  9. 136 GETY$:IFY$=""THEN136
  10. 137 IFY$<>"N"THEN1200
  11. 140 POKE53281,11
  12. 160 S1=16
  13. 170 S2=255:S3=37
  14. 180 DIM A(255)
  15. 190 B$=CHR$(17):D$="0"
  16. 210 OPEN 15,8,15,"I"+D$:GOSUB500
  17. 220 OPEN2,8,2,"#0":GOSUB500
  18. 230 PRINT" TRACK,SECTOR  0,0[157][157][157][157][157]";
  19. 240 INPUTT,S
  20. 250 IFT<1ORT>35THENCLOSE2:CLOSE15:END
  21. 260 PRINT" WORKING ":PRINT#15,"U1:2,";D$;T;S:GOSUB500
  22. 275 PRINT"[147]";
  23. 280 FORJ=0TO255
  24. 300 GET#2,A$:IFA$=""THENA$=CHR$(0)
  25. 310 A(J)=ASC(A$):NEXTJ
  26. 320 P=0:CL=1
  27. 330 PRINT"[147]TRACK";T;"SECTOR";S
  28. 340 FORJ=PTOP+S2STEPS1:PRINT"]";
  29. 350 V=J:GOSUB800:K$="":PRINT"- ";:FORK=0TOS1-1:V=A(J+K):GOSUB800:K$="":CL=1-CL
  30. 355 PRINTCHR$(18);:IFCL=1THENPRINTCHR$(146);
  31. 356 REM IF YOU PREFER CHANGE 18 TO 144 AND CHANGE 146 TO 144 IN STATEMENT 355
  32. 360 NEXT K:PRINT"-":NEXTJ
  33. 365 PRINT"";
  34. 370 PRINT"CHANGE THE FIRST CHARACTER TO [ TO READ CHANGED SCREEN ONTO THE DISK"
  35. 380 PRINT"CHANGE THE FIRST CHARACTER TO \ TO ABORT THIS PROCESS"
  36. 390 OPEN1,3:CMD1
  37. 440 INPUTC$:PRINT;:Z=ASC(C$):C$=C$
  38. 450 PRINT#1:CLOSE1
  39. 460 IFZ=91GOTO530
  40. 470 IFZ=93GOTO390
  41. 475 IFZ=147GOTO390
  42. 480 GOTO230
  43. 500 REM
  44. 510 INPUT#15,E,E$,E1,E2:IFE=0THENRETURN
  45. 520 PRINT"DISK ERROR:[146]"E;E$,E1;E2:END:RETURN
  46. 530 IFLEN(C$)<S3GOTO230
  47. 540 IFMID$(C$,4,1)<>"-"ORMID$(C$,S3+1,1)<>"-"GOTO230
  48. 550 C1=2:GOSUB700
  49. 560 C3=C2-1:FORK=1TOS1:C1=K*2+4:GOSUB700
  50. 570 PRINT#15,"B-P:"2;C3+K:GOSUB500:PRINT#2,CHR$(C2);:GOSUB500
  51. 580 NEXTK
  52. 590 PRINT#15,"U2:"2;D$;T;S:GOSUB500
  53. 600 GOTO390
  54. 700 C2=0:FORJ=0TO1:C%=ASC(MID$(C$,C1+J)):IFC%<58THENC%=C%-48
  55. 710 IFC%>64THENC%=C%-55
  56. 720 IFC%<0ORC%>15THENSTOP
  57. 730 C2=C2*16+C%:NEXTJ:RETURN
  58. 800 V=V/16:FORL=1TO2
  59. 810 V%=V:V=(V-V%)*16:IFV%>9THENV%=V%+7
  60. 820 K$=K$+CHR$(V1)
  61. 830 PRINTCHR$(V%+48);:NEXTL:RETURN
  62. 999 END
  63. 1000 CLOSE2:CLOSE15:CLOSE1:END
  64. 1200 PRINT"[147][212]HIS ROUTINE IS TO BE USED TO PATCH"
  65. 1210 PRINT"UP SMASHED SECTORS ON DISKETTES BY"
  66. 1220 PRINT"RECONSTRUCTING EACH BYTE (IN "
  67. 1230 PRINT"GROUPS OF 16 BYTES) MANUALLY. "
  68. 1240 PRINT"[217]OU ARE EXPECTED TO CHANGE THE HEX"
  69. 1250 PRINT"CHARACTERS IN THEIR PLACE[146] ON THE"
  70. 1260 PRINT"SCREEN.  [201]N ADDITION, YOU MUST "
  71. 1270 PRINT"CHANGE THE INITIAL CHARACTER ON THE"
  72. 1280 PRINT"LINE OF HEX VALUES YOU TO CHANGE;"
  73. 1290 PRINT"FOR EXAMPLE, YOU MIGHT CHANGE [ TO]."
  74. 1300 PRINT"[212]O END THE PROCEDURE, CHANGE [ TO \."
  75. 1305 PRINT"[198]INALLY, TO QUIT, SELECT TRACK AND"
  76. 1306 PRINT"SECTOR: 0,0  ."
  77. 1310 PRINT"[201]F YOU GET INTO TROUBLE AND MUST "
  78. 1320 PRINT"PUSH RUN/STOP/RESTORE, YOU MAY BE"
  79. 1330 PRINT"ABLE TO CLOSE FILES BY TYPING"
  80. 1340 PRINT"       GOSUB1000 IN IMMEDIATE MODE."
  81. 1350 PRINT"[201] RECOMMEND THAT YOU EXPERIMENT ON"
  82. 1360 PRINT"AN EXTRA DISK BEFORE USING THIS."
  83. 1370 PRINT"[199]OOD LUCK."
  84. 1375 PRINT"PRESS ANY KEY TO CONTINUE[146]"
  85. 1376 GETY$:IFY$=""THEN1376
  86. 1377 PRINT"[147]";
  87. 1380 GOTO140
  88. 63990 OPEN1,8,15,"S0:DISKETTE MOD":CLOSE1
  89. 63995 SAVE"DISKETTE MOD",8:VERIFY"*",8
  90.